/**
 * @description 移动 0 到数组末尾
 * @author 李子一
 */

// export function moveZero(arr: number[]): void {
// 	const length = arr.length
// 	if (!length) {
// 		return
// 	}

// 	let zeroLength = 0

// 	for (let i = 0; i < length - zeroLength; i++) {
// 		if (arr[i] === 0) {
// 			arr.push(0)
// 			arr.splice(i, 1)
// 			i--
// 			zeroLength++
// 		}
// 	}
// }

export function moveZero(arr: number[]): void {
	const length = arr.length
	if (!length) {
		return
	}

	let i
	let j = -1
	for (i = 0; i < length; i++) {
		if (arr[i]) {
			if (j < 0) {
				j = i
			}
		}

		if (arr[i] !== 0 && j >= 0) {
			;[arr[i], arr[j]] = [arr[j], arr[i]]

			j++
		}
	}
}

const arr = [1, 0, 3, 4, 0, 0, 0, 11, 0]
moveZero(arr)
console.log(arr)
